The technology disclosed relates to licensing software executing on virtual machines. Since a virtual machine is a simulation of a physical machine, i.e. a computer, it can easily be cloned to produce an exact duplicate. This poses a problem when it is desired to license an instance of software for use only on a particular virtual machine.
Historically one of the primary software licensing methods has been to license software, such as an instance of a software application, such that it is only permitted to execute on a particular physical computer or “node” in a computer network. Another name for a node is a “machine.” In this sense the software license “locks” the software to the particular physical computer and hence the term “node-locked” license.
This type of license makes use of unique characteristics of a node, such as the physical computing hardware, to identify a node, and lock the desired software license to it. This is typically done by executing licensing software on the node being licensed that retrieves a unique identifying characteristic of the machine such as the MAC address of a network card or the serial number of the main hard drive and sending this information to a remote license server which grants a license, in the form of license data, to the node. The licensing software then stores the license data in a location accessible to the node, such as a local disk drive or a network drive. The licensing software may or may not be part of the software being licensed. If it is not part of the software being licensed it is typically a software module that is called by the software being licensed.
Upon execution, the software being licensed then invokes the licensing software which obtains the unique identifying characteristic of the node and compares it to unique identifying characteristic in the stored license data. If they match, the software being licensed continues execution normally. Otherwise it terminates execution and usually notifies the user that the license was not valid.
However, the absence of a unique physical characteristic for a virtual machine renders the above methods unusable for licensing software operating on a virtual machine, since a virtual machine, even though it may be a complete simulation of a physical machine (computer), may easily be cloned to produce an exact copy with exactly the same characteristics as the original from which it was cloned.
Thus, with the large number of virtual machines now in use, it is therefore desirable to devise a method that would provide a unique identifier for a virtual machine such as a digitally readable identification code that can be used for licensing purposes.